package dominio;

import java.util.ArrayList;

import dominio.Filtro;

public class Busqueda {

	private String ciudadOrigen;
	private String ciudadDestino;
	private String fecha;
	private String ubicacion;
	private ArrayList<String> clase;
	private Filtro filtro;
	private int precioMinimo;
	private int precioMaximo;
	private boolean conEscala;
	private int cantidadDeEscalasMaximas;

	public Filtro getFiltro() {
		return filtro;
	}

	public Busqueda() {
		super();
		filtro = new NoFiltrar();
		clase = new ArrayList<String>();
		setCantidadDeEscalasMaximas(2);
	}
	
	public boolean esConEscala() {
		return conEscala;
	}

	public void setConEscala(boolean conEscala) {
		this.conEscala = conEscala;
	}

	public int getCantidadDeEscalasMaximas() {
		return cantidadDeEscalasMaximas;
	}

	public void setCantidadDeEscalasMaximas(int cantidadDeEscalasMaximas) {
		this.cantidadDeEscalasMaximas = cantidadDeEscalasMaximas;
	}


	public void ubicacion(String lugar) {

		Filtro filtroSiguiente = this.filtro;
		FiltroPorUbicacion primerFiltro = new FiltroPorUbicacion();
		primerFiltro.setDecorado(filtroSiguiente);
		this.filtro = primerFiltro;

		this.ubicacion = lugar;
	}

	public String ubicacion() {
		return this.ubicacion;
	}

	public ArrayList<String> getClases() {
		return clase;
	}

	public void agregarUnaClase(String clase) {
		Filtro filtroSiguiente = this.filtro;
		FiltroPorClase primerFiltro = new FiltroPorClase();
		primerFiltro.setDecorado(filtroSiguiente);
		this.filtro = primerFiltro;

		this.clase.add(clase);
	}

	public void setPrecioEntre(int i, int j) {

		Filtro filtroSiguiente = this.filtro;
		FiltroPorPrecio primerFiltro = new FiltroPorPrecio();
		primerFiltro.setDecorado(filtroSiguiente);
		this.filtro = primerFiltro;

		precioMinimo = i;
		precioMaximo = j;
	}

	public void dameSoloLosLibres() {
		Filtro filtroSiguiente = this.filtro;
		FiltroPorAsientosLibres primerFiltro = new FiltroPorAsientosLibres();
		primerFiltro.setDecorado(filtroSiguiente);
		this.filtro = primerFiltro;
	}

	public void setFecha(String fecha) {
		this.fecha = fecha;
	}

	public String getFecha() {
		return fecha;
	}

	public void setCiudadDestino(String ciudadDestino) {
		this.ciudadDestino = ciudadDestino;
	}

	public String getCiudadDestino() {
		return ciudadDestino;
	}

	public void setCiudadOrigen(String ciudadOrigen) {
		this.ciudadOrigen = ciudadOrigen;
	}

	public String getCiudadOrigen() {
		return ciudadOrigen;
	}

	public int getPrecioMinimo() {
		return precioMinimo;
	}

	public int getPrecioMaximo() {
		return precioMaximo;
	}

}
